import numpy as np
import matplotlib.pyplot as plt

if __name__ == '__main__':
    # 生成初始均匀分布随机数并绘制直方图
    u = np.random.uniform(0.0, 1.0, 10000)  # 生成10000个[0,1)的均匀分布随机数
    plt.hist(u, 80, facecolor='g', alpha=0.75)  # 绘制直方图（80个bins，绿色，透明度0.75）
    plt.grid(True)  # 显示网格
    plt.show()  # 显示图形

    times = 10000  # 重复叠加的次数
    for time in range(times):
        # 每次循环叠加10000个新的均匀分布随机数（注意：原代码此处可能存在逻辑问题，见下文解释）
        u += np.random.uniform(0.0, 1.0, 10000)

    print(len(u))  # 打印数组u的长度（始终为10000，因为是按元素叠加）
    u /= times  # 对叠加后的结果取平均值（除以次数）
    print(len(u))  # 再次打印数组长度（仍为10000）

    # 绘制叠加平均后的直方图
    plt.hist(u, 80, facecolor='g', alpha=0.75)
    plt.grid(True)
    plt.show()